#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<string>
using namespace std;

//int main()
//{
//	string s1("abcdefg");
//	string s2("hijklmn");
//	/*cout << s1 << endl;
//	cout << s2 << endl;
//
//	s1.assign(s2);
//
//	cout << s1 << endl;
//	cout << s2 << endl;
//
//	s1.assign("asdfgh");
//	s2.assign("qwertyui", 2, 5);
//	cout << s1 << endl;
//	cout << s2 << endl;
//
//	s1.assign("zxcvbn", 4);
//	cout << s1 << endl;*/
//	//cout << s2 << endl;
//
//	/*s1.insert(2, s2);
//	cout << s1 << endl;
//	cout << s2 << endl;
//
//	s1.insert(8, "xxxx");
//	cout << s1 << endl;
//	cout << s2 << endl;
//
//	s1.erase(2, 10);
//	cout << s1 << endl;
//	cout << s2 << endl;
//
//	s1.swap(s2);
//	cout << s1 << endl;
//	cout << s2 << endl;*/
//
//	/*s1.replace(2, 4, s2);
//	cout << s1 << endl;
//	cout << s2 << endl;
//
//	s2.replace(2, 3, s1, 1, 5);
//	cout << s1 << endl;
//	cout << s2 << endl;*/     
//
//	
//	string str("There are two needles in this haystack with needles.");
//	string str2("needle");
//
//	size_t found = str.find(str2);
//	if (found != string::npos)
//	{
//		cout << "first 'needle' found at: " << found << '\n';
//	}
//
//	found = str.find("needles are small", found + 1, 6);
//	if (found != string::npos)
//	{
//		cout << "second 'needle' found at: " << found << '\n';
//	}
//
//	found = str.find("haystack");
//	if (found != string::npos)
//	{
//		cout << "'haystack' also found at: " << found << '\n';
//	}
//
//	found = str.find('.');
//	if (found != string::npos)
//	{
//		cout << "Period found at: " << found << '\n';
//	}
//
//	str.replace(str.find(str2), str2.length(), "preposition");
//	cout << str << '\n';
//
//
//	return 0;
//}

int main()
{
	//string s1("Test.cpp");
	//string s2("Test.tar.zip");

	//size_t pos1 = s1.rfind('.');
	//if (pos1 != string::npos)
	//{
	//	//string suff = s1.substr(pos1, s1.size() - pos1);
	//	string suff = s1.substr(pos1);
	//	cout << suff << endl;
	//}

	//size_t pos2 = s2.rfind('.');
	//if (pos2 != string::npos)
	//{
	//	string suff = s2.substr(pos2);
	//	cout << suff << endl;
	//}

	size_t pos1 = 0, pos2 = 0;
	string str("https://legacy.cplusplus.com/reference/string/string/substr/");
	string sub1, sub2, sub3;
	pos1 = str.find(':');
	sub1 = str.substr(0, pos1 - 0);
	cout << sub1 << endl;

	pos2 = str.find('/', pos1+3);
	sub2 = str.substr(pos1 + 3, pos2 - (pos1 + 3));
	cout << sub2 << endl;

	sub3 = str.substr(pos2 + 1);
	cout << sub3 << endl;

	size_t count = str.find_first_not_of("aeiou");
	while (count != string::npos)
	{
		str[count] = '*';
		count = str.find_first_not_of("aeiou", count + 1);
	}
	cout << str << endl;
	//cout << count << endl;

	return 0;
}